'\" te
.\"  Copyright (c) 2004, Sun Microsystems, Inc.  All Rights Reserved
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH PM 9P "Jan 20, 2004"
.SH NAME
pm \- Power Management properties
.SH DESCRIPTION
.sp
.LP
The \fBpm-hardware-state\fR property can be used to influence the behavior of
the Power Management framework. Its syntax and interpretation is described
below.
.sp
.LP
Note that this property is only interpreted by the system immediately after the
device has successfully attached. Changes in the property made by the driver
after the driver has attached will not be recognized.
.sp
.LP
\fBpm-hardware-state\fR is a string-valued property. The existence of the
\fBpm-hardware-state\fR property indicates that a device needs special handling
by the Power Management framework with regard to its hardware state.
.sp
.LP
If the value of this property is \fBneeds-suspend-resume\fR, the device has a
hardware state that cannot be deduced by the framework. The framework
definition of a device with hardware state is one with a \fBreg\fR property.
Some drivers, such as \fBSCSI\fR disk and tape drivers, have no \fBreg\fR
property but manage devices with "remote" hardware. Such a device must have a
\fBpm-hardware-state\fR property with a value of \fBneeds-suspend-resume\fR for
the system to identify it as needing a call to its \fBdetach\fR(9E) entry point
with command \fBDDI_SUSPEND\fR when system is suspended, and a call to
\fBattach\fR(9E) with command \fBDDI_RESUME\fR when system is resumed. For
devices using original Power Management interfaces (which are now obsolete)
\fBdetach\fR(9E) is also called with \fBDDI_PM_SUSPEND\fR before power is
removed from the device, and \fBattach\fR(9E) is called with
\fBDDI_PM_RESUME\fR after power is restored.
.sp
.LP
A value of \fBno-suspend-resume\fR indicates that, in spite of the existence of
a \fBreg\fR property, a device has no hardware state that needs saving and
restoring. A device exporting this property will not have its \fBdetach()\fR
entry point called with command \fBDDI_SUSPEND\fR when system is suspended, nor
will its \fBattach()\fR entry point be called with command \fBDDI_RESUME\fR
when system is resumed. For devices using the original (and now obsolete) Power
Management interfaces, \fBdetach\fR(9E) will not be called with
\fBDDI_PM_SUSPEND\fR command before power is removed from the device, nor
\fBattach\fR(9E) will be called with \fBDDI_PM_RESUME\fR command after power is
restored to the device.
.sp
.LP
A value of \fBparental-suspend-resume\fR indicates that the device does not
implement the \fBdetach\fR(9E) \fBDDI_SUSPEND\fR semantics, nor the
\fBattach()\fR \fBDDI_RESUME\fR semantics, but that a call should be made up
the device tree by the framework to effect the saving and/or restoring of
hardware state for this device. For devices using original Power Management
interfaces (which are now obsolete), it also indicates that the device does not
implement the \fBdetach\fR(9E) \fBDDI_PM_SUSPEND\fR semantics, nor the
\fBattach\fR(9E) \fBDDI_PM_RESUME\fR semantics, but that a call should be made
up the device tree by the framework to effect the saving and/or restoring the
hardware state for this device.
.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(7) for descriptions of the following attributes:
.sp

.sp
.TS
box;
c | c
l | l .
ATTRIBUTE TYPE	ATTRIBUTE VALUE
_
Interface stability	Committed
.TE

.SH SEE ALSO
.sp
.LP
.BR pm (4D),
.BR power.conf (5),
.BR attach (9E),
.BR detach (9E),
.BR pm_busy_component (9F),
.BR pm_idle_component (9F),
.BR pm-components (9P)
.sp
.LP
\fIWriting Device Drivers\fR
